import br.com.nooclix.salon.ui.dto.Employee.EmployeeTO;
import br.com.nooclix.salon.ui.dto.person.PersonTO;
import br.com.nooclix.salon.ui.util.WindowsMessage;

import mx.controls.Alert;
import mx.events.CloseEvent;

protected var employee:EmployeeTO
protected var bySearch:Boolean = false;

public function save():void{
	//Variável de instância ao Employee do tipo EmployeeTO
	var employee:EmployeeTO = new EmployeeTO();
	//Setando o person de EmployeeTO
	employee.person = personView.getPerson();
	//E esse método persist()? vem de onde?
	employeeRemote.persist(employee);
		
}
//Setando o valor de person que está declarado em EmployeeTO
public function employeeUpdate():void{
	//Recuperando o valor de person que está dentro de employeeTO
	employee.person = personView.getPerson();
	//Aqui ele só está alterando o valor de employee para ficar igual ao de person
	//Tem que primeiro deletar o person para alterar o employee?
	employeeRemote.update(employee);
	
}


private function findByName():void{
	
	employeeRemote.findByName(fieldSearch.text);
	
}


private function removeEmployee():void{
	if(gridEmployee.selectedItem == null){
		WindowsMessage.alarmWithTitle("Ops, selecione um(a) funcionário para poder excluir.","Exclusão");
		return;
	}
	
	var e:EmployeeTO = gridEmployee.selectedItem as EmployeeTO; 
	
	WindowsMessage.question("Deseja excluir o(a) funcionário "+ e.person.name,"Deleção",function (event:CloseEvent):void{
		if(event.detail == Alert.YES){
			employeeRemote.remove(e);		
		}
	});
	
	
}

private function showEmployee():void{
	
	if(gridEmployee.selectedItem == null){
		WindowsMessage.alarmWithTitle("Ops, selecione um(a) funcionário para visualizá-lo.","Visualização");
		return;
	}
	this.currentState = "update";
	employee = gridEmployee.selectedItem as EmployeeTO;
	personView.setPerson(employee.person);
}

private function backSearch():void{
	findByName();
	personView.clearFields();
	this.currentState = "search";
	
}
//Isso é um construtor?
private function newEmployee():void{
	
	//	var customerWindow:CustomerWindow = new CustomerWindow();
	//	customerWindow.openPanel();
	//	customerWindow.currentState = "create";
	
	//seta o estado, esse estado está relacionado com a tela a qual faz parte	
	this.currentState = "create";
	bySearch = true;
	
}